<?php

/**
 * 发送短信实现样例
 */

// 定义接口
interface Message
{
    public function send(string $msg);
}
// 实现阿里短信接口
class AliYunMessage implements Message
{
    public function send(string $msg)
    {
        // 请用接口，发送短信
        // xxxxxx
        return '阿里云短信（原阿里大鱼）发送成功！短信内容' . $msg;
    }
}
// 实现百度短信接口
class BaiduYunMessage implements Message
{
    public function send(string $msg)
    {
        // 请用接口，发送短信
        // xxxxxx
        return '百度SMS短信发送成功! 短信内容' . $msg;
    }
}
// 实现极光短信接口
class JiguangMessage implements Message
{
    public function send(string $msg)
    {
        // 请用接口，发送短信
        // xxxxxx
        return '极光短信发送成功! 短信内容' . $msg;
    }
}

/**
 * 简单工厂模式
 */
class MessageFactory
{
    public static function createMessage($type)
    {
        switch ($type) {
            case 'Ali':
                return new AliYunMessage();
            case 'Baidu':
                return new BaiduYunMessage();
            case 'JiGuang':
                return new JiguangMessage();
            default:
                return null;
        }
    }
}


// 当前业务需要使用阿里
$message = MessageFactory::createMessage('Ali');
echo $message->send('您有新的短消息，请查收');